package tt.dz.appserver.service.business;

import org.apache.avro.AvroRemoteException;

import com.alibaba.fastjson.JSONObject;

import tt.dz.appserver.entity.model.ResultMappingEntity;
import tt.dz.appserver.entity.vo.WeiXinOrderInfoVo;

/**
 * 账单业务接口
 * 
 * @author Administrator
 *
 */
public interface FundService {

	/**
	 * 订单列表
	 * 
	 * @param userId
	 * @param pageNo
	 * @return
	 */
	public JSONObject orderList(String userId, String pageNo, String status,String showHide) throws AvroRemoteException;
	public JSONObject orderListOther(String userId, String pageNo, String status) throws AvroRemoteException;

	/**
	 * 获取订单详细
	 * 
	 * @param orderNo
	 * @return
	 */
	public JSONObject orderDetail(String orderNo) throws AvroRemoteException;

	/**
	 * 订单结算
	 * 
	 * @param orderNo
	 * @return
	 * @throws AvroRemoteException
	 */
	public JSONObject balanceAccounts(String userId, String orderNo, String cardNo, String cardType) throws AvroRemoteException;

	/**
	 * 获取预约折扣信息
	 * 
	 * @param userCard
	 * @param portNo
	 * @param chargerId
	 * @param minute
	 * @param startTime
	 * @return
	 */
	public JSONObject getReservationDiscount(String userCard, String portNo, String chargerId, String minute,
			String startTime) throws AvroRemoteException;
	
	/**
	 * 获取用户需要支付的订单
	 * @param userId
	 * @return
	 * @throws AvroRemoteException
	 */
	public ResultMappingEntity getUserNeedPayOrders(String userId) throws AvroRemoteException;
	
	/**
	 * 生成微信订单
	 * @param orderNo
	 * @param appId
	 * @param body
	 * @param payType
	 * @param openId
	 * @param ip
	 * @return
	 * @throws AvroRemoteException 
	 */
	public ResultMappingEntity getProductOrder(String orderNo,String appId, String body,String payType,String openId,String ip) throws AvroRemoteException;
	
	/**
	 * 更新订单评价标签
	 * @param orderNo
	 * @param lables 订单标签
	 * @param evaluate 订单评价
	 * @param 订单星级
	 * @return
	 * @throws AvroRemoteException
	 */
	public ResultMappingEntity orderAttach(String userId,String orderNo, String lables, String evaluate,String grade) throws AvroRemoteException;
	
	/**
	 * 删除订单
	 * @param orderNo
	 * @return
	 * @throws AvroRemoteException
	 */
	public ResultMappingEntity deleteOrder(String orderNo, String showHide) throws AvroRemoteException;
	
	/**
	 * 站点评分
	 * @param userId
	 * @param stationId
	 * @param score
	 * @return
	 * @throws AvroRemoteException
	 */
	public ResultMappingEntity scoreStation(String userId, String stationId, String score)throws AvroRemoteException;
	//pengyu add 20180601
	boolean isHaveNeedPayOrders(String userId) throws AvroRemoteException;
	
	

}
